// IRemoteService.aidl
package com.toptech.downloadmanager;

// Declare any non-default types here with import statements

import  com.toptech.downloadmanager.FileInfo;
import  com.toptech.downloadmanager.TaskInfo;
import  com.toptech.downloadmanager.ICallback;
import  com.toptech.downloadmanager.DownloadConfigGuration;
interface IRemoteService {

    //客户端发送给服务端,不需要反馈
    void setTaskMax(int taskcount);    //设置并行任务的最大值
    void addTaskList(in List<FileInfo> mFileInfoList);  //发送多个任务给服务端
    void setFileTaskStatus(in FileInfo fileinfo); //可以设置暂停和播放
    void deleteTask(in FileInfo fileinfo);  //删除一个任务



    //客户端发送给服务端,服务端反馈到客服端的函数
    int  getTaskMax();              //获取任务并行数

    //======================= 获取数据 ========================//

    List<TaskInfo> getAllTask();             //第一次连接时，把数据库的信息发送过去
    List<TaskInfo> getNeedDownloadTask();    //第一次连接时，获取需要下载的任务列表
    List<TaskInfo> getFinishedTask();        //第一次连接时，已经下载完成的

    //======================= 获取数据 ========================//
    FileInfo getFileInfoStatus();  //获取实时的数据
    int getTaskProgress(long id);  //通过id获取该任务的进度条



    FileInfo getFileInfoSuccess();  //文件下载成功
    FileInfo getFileInfoFail();   //下载失败
    List<FileInfo> setAllTaskPause();
    List<FileInfo> setAllTaskStart();


    //与客户端的回调
    void registerCallback(ICallback cb);
    void unregisterCallback(ICallback cb);
}
